// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Mosbet Online Apk Onlayn Kazino Oynamaq | Rəsmi Sayt və Azərbaycanda Qeydiyyat – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Mosbet Online Apk Onlayn Kazino Oynamaq | Rəsmi Sayt və Azərbaycanda Qeydiyyat

Mosbet Azərbaycanda: Oyunların Növləri və Əmsalları

Mosbet Azərbaycanda geniş slot oyunları seçimi, həmçən klassik rulet və blackjack masaları təqdim edir. Platformada müasir video pokerlər və virtual idman mərcləri də mövcuddur. Əmsallar hər oyun növünə görə aydın şəkildə göstərilir və tez-tez yenilənir. Canlı kazino bölməsində real dilerlər yüksək əmsallarla oyunları idarə edir. Müxtəlif pokerlər üçün nəzərdə tutulmuş masalarda özəl turnirlər təşkil olunur. Oyunçular həmçən yüksək çarpanlı mərc oyunlarında uduş şanslarını artıra bilərlər.

Mosbet Online Apk Onlayn Kazino Oynamaq | Rəsmi Sayt və Azərbaycanda Qeydiyyat

Mosbet Mobil Tətbiqi: Smartfonlarda Oynamağın Üstünlükləri

Mosbet Mobil Tətbiqi, smartfonlar vasitəsilə kazinonun dünyasına daxil olmaq üçün ən rahat yoldur. Tətbiq sayəsində istənilən vaxt və yerdə sevimli oyunlarınıza çatmaq mümkündür. Mobil versiya ilə kompüterdə olduğu kimi bütün funksiyalar və bonuslar əlçatandır. Sürətli və təhlükəsiz ödəniş sistemləri mərc prosesinizi asanlaşdırır. İstifadəçi dostu interfeys sayəsində hər kəs rahatlıqla idarə edə bilər. Canlı diler oyunlarını da mobil cihazınızdan canlı izləmək və oynamaq imkanı əldə edirsiniz.

Mosbet Online Apk Onlayn Kazino Oynamaq | Rəsmi Sayt və Azərbaycanda Qeydiyyat

Mosbet Bonusları: Giriş və Depozit Təklifləri

Mosbet bonusları, oyunçuları cəlb etmək üçün müxtəlif giriş və depozit təklifləri təqdim edir. İlk depozitinizi etdikdə, Mosbet-in xoş gəlmisiniz bonusu ilə qarşılaşa bilərsiniz. Bu təkliflər adətən ilk depozitinizə görə əlavə bonus vəsaiti və ya pulsuz fırlanmalar şəklində olur. Müntəzəm kampaniyalar kimi, depozit bonusları da hesabınıza doldurduqda əlavə dəyər təklif edir. Hər bir Mosbet bonusunun öz şərtləri və mərc tələbləri mövcuddur. “Mosbet Bonusları: Giriş və Depozit Təklifləri” istifadəçilərin əmanətlərini https://evegedirem.info/ artırmaq üçün əsas imkandır.

Mosbet-də Hesabın Təhlükəsizliyi və Məlumatların Mühafizəsi

Mosbet-də Hesabın Təhlükəsizliyi və Məlumatların Mühafizəsi üçün müasir SSL şifrələmə texnologiyası istifadə olunur. İki faktorlu autentifikasiya sistemi hesablarınıza əlavə bir qoruyucu təbəqə təmin edir. Şəxsi məlumatlarınız qanuni qoruma altında və yüksək dərəcədə gizli saxlanılır. Platforma məlumatların emalı ilə bağlı Avropa standartlarını və ən yaxşı təcrübələri rəhbər tutur. Ödəniş operasiyaları və şəxsi detallar davamlı monitoring və müşahidə altındadır. İstifadəçilər məlumatlarının hər hansı istifadəsi barədə tam informasiya və nəzarətə malikdirlər.

Mosbet-də Ödəniş Metodları: Depozit və Çıxarışların Vaxtı

Mosbet-də Ödəniş Metodları: Depozit və Çıxarışların Vaxtı ilə bağlı əsas üstünlük operativ transaksiyalardır. Depozitlər əksər hallarda dərhal hesaba daxil olur, bu da oyun prosesini dayandırmamağa imkan verir. Çıxarış müddəti seçilmiş ödəniş metodundan asılı olaraq bir neçə dəqiqədən bir neçə iş gününə qədər dəyişə bilər. Elektron pul kisələri vasitəsilə edilən köçürmələr adətən ən sürətli şəkildə həyata keçirilir. Bank kartları ilə çıxarışlar isə bir-üç iş günü ərzində tamamlanır. Bütün maliyyə əməliyyatları platformanın yüksək təhlükəsizlik standartları daxilində qorunur.

Adım: Fərid, yaşım: 29. Mosbet Online Apk Onlayn Kazino Oynamaq | Rəsmi Sayt və Azərbaycanda Qeydiyyat platformasını tərifləmək istəyirəm. Oyunların çeşidi və canlı diler bölməsinin keyfiyyəti məni heyran etdi. Mobil tətbiq isə həqiqətən rahatdır, istənilən yerdə asanlıqla oynamağa imkan verir.

Adım: Aygün, yaşım: 34. Rəsmi saytında qeydiyyat prosesi çox sadə və sürətli olduğu üçün Mosbet-i seçdim. Ödənişlər tez hesabıma çatdı və müştəri dəstəyi həmişə cavab verir. Oyun təcrübəmi daha yaxşılaşdıran çoxlu bonuslar var. Həqiqətən tövsiyə edirəm.

Adım: Rəşad, yaşım: 41. Mosbet Online Apk Onlayn Kazino Oynamaq | Rəsmi Sayt və Azərbaycanda Qeydiyyat barədə mənfi rəy verməliyəm. Oyunlar yüklənməkdə çox ləng davranır və tez-tez kəsilir. Bu, bütün zövqü əldən alır. Ümid etdiyim qədər stabil deyil.

Adım: Ləman, yaşım: 27. Bonus şərtlərini yerinə yetirmək olduqca çətindir və mərc tələbləri həddindən artıq yüksəkdir. Üstəlik, bəzi çıxarış sorğularım gec cavablandı. Mosbet-dəki təcrübəm çox məyusedicidir, gözləntilərimi doğrultmadı.

Mosbet Online Apk Onlayn Kazino Oynamaq | Rəsmi Sayt və Azərbaycanda Qeydiyyat axtarışı ilə Azərbaycanlı oyunçular bu platformanın mobil tətbiqini və rəsmi internet səhifəsini rahatlıqla tapacaqlar.

Azərbaycanda qeydiyyat prosesi Mosbet Online Apk Onlayn Kazino Oynamaq | Rəsmi Sayt və Azərbaycanda Qeydiyyat məlumatlarına əsasən şəxsi məlumatların daxil edilməsi ilə tamamlanır.

Bu FAQ bölməsi Mosbet Online Apk Onlayn Kazino Oynamaq | Rəsmi Sayt və Azərbaycanda Qeydiyyat sorğusu üzrə əsas texniki və qeydiyyat məsələlərinə aydınlıq gətirir.

Design and Develop by Ovatheme